package org.dream.ui.chart;

/**
 * 
 * @author qiuriyuchen E-mail:panpan_001@126.com
 */
public interface ChartModel {
	/**
	 * 设置标题
	 * 
	 * @param title
	 *            标题文字
	 */
	public abstract void setTitle(String title);

	/**
	 * 得到标题
	 * 
	 * @return 标题
	 */
	public abstract String getTitle();

	/**
	 * 设置窗口数目，每个窗口平分高度，目前支持一个窗口和二个窗口
	 * 
	 * @param windowCount窗口个数
	 */
	public abstract void setWindowCount(int windowCount);

	/**
	 * 得到窗口数目
	 * 
	 * @return窗口数目
	 */
	public abstract int getWindowCount();

	/**
	 * 得到上边距
	 * 
	 * @return上边距（单位像素）
	 */
	public abstract int getTopMargin();

	/**
	 * 得到左边距
	 * 
	 * @return右边距（单位像素）
	 */
	public abstract int getRightMargin();

	/**
	 * 得到下边距
	 * 
	 * @return下边距（单位像素）
	 */
	public abstract int getBottomMargin();

	/**
	 * 得到左边距
	 * 
	 * @return左边距（单位像素）
	 */
	public abstract int getLeftMargin();

	/**
	 * 设置左边距
	 * 
	 * @param leftMargin左边距
	 *            (单位像素)
	 */
	public void setMargin(int leftMargin, int rightMargin, int topMargin, int bottomMargin);

	/**
	 * 得到高度，包含边距
	 * 
	 * @return 高度（单位像素）
	 */
	public abstract int getHeight();

	/**
	 * 设置宽度
	 * 
	 * @param width
	 *            宽度(单位像素)
	 * @param height
	 *            高度（单位像素）
	 */
	public abstract void setSize(int width, int height);

	/**
	 * 得到宽度
	 * 
	 * @return
	 */

	public abstract int getWidth();

	/**
	 * 得到可用高度，去掉页边距
	 * 
	 * @return可用高度
	 */

	public abstract int getUseableHeight();

	/**
	 * 得到可用的宽度，去年页边距
	 * 
	 * @return可用的宽度
	 */

	public abstract int getUseableWidth();

	/**
	 * 得到Y下坐标，去掉边距
	 * 
	 * @return Y下坐标（单位像素）
	 */
	public abstract int getPixelYButtom();

	/**
	 * 得到X右坐标，去掉边距
	 * 
	 * @return Y下坐标（单位像素）
	 */
	public abstract int getPixelXRight();

	public abstract int getPixelXLeft();

	public abstract int getPixelYTop();

}
